#include <deque>
#include <iostream>
using namespace std;

void test(){
    // deque的初始化和赋值的方式
    // deque<int> vec; 初始化
    /* deque<int> number;//1、创建无参对象 */
    /* deque<int> number(3, 10);//2、count个value值 */
    /* int arr[10] = {1, 3, 5, 7, 9, 8, 6, 4, 2, 10}; */
    /* //3、迭代器范围 */
    /* deque<int> number(arr, arr + 10);//左闭右开区间[, ) */
    //4、拷贝或者移动
    //5、大括号形式
    deque<int> number = {1, 4, 7, 9, 8, 6, 5, 3, 2};

    //遍历
    for(size_t idx = 0; idx != number.size(); ++idx)
    {
        cout << number[idx] << "  ";
    }
    cout << endl;

    //未初始化的迭代器
    deque<int>::iterator it;
    for(it = number.begin(); it != number.end(); ++it)
    {
        cout << *it << "  ";
    }
    cout << endl;

    //初始化的迭代器
    deque<int>::iterator it2 = number.begin();
    for(; it2 != number.end(); ++it2)
    {
        cout << *it2 << "  ";
    }
    cout << endl;

    //增强for循环
    for(auto &elem : number)
    {
        cout << elem << "  ";
    }
    cout << endl;
}


int main(int atgc, char * argv[])
{
    test();
    return 0;
}

